#ifndef QUEUE_H_INCLUDED
#define QUEUE_H_INCLUDED

#include "ChessNode.h"
using namespace std;

struct queueNode
{
public:
    ChessNode* chessnode;
    queueNode* next;
    queueNode():chessnode(nullptr),next(nullptr) {}
    queueNode(ChessNode* p)
    {
        chessnode = p;
        next = nullptr;
    }
    ~queueNode() {}
};

class Queue
{
private:
    queueNode* firstOne;
    queueNode* lastOne;
    int size_;
public:
    int getsize();
    bool empty_();
    void pop();
    void push(ChessNode* p);
    ChessNode* front_();
    ChessNode* back_();
    Queue();
    ~Queue();
};

#endif // QUEUE_H_INCLUDED
